Functional Testing 是一種軟體測試方法,根據功能需求/規格驗證軟體系統的每個功能是否按照需求規格進行工作。這種測試集中於軟體或是應用程式的外部行為,而非內部結構或程式實現。
黑箱測試
Functional Testing通常被稱為黑箱測試,因為測試者並不關心內部程式結構或系統架構,只關注輸入和輸出之間的關係。因此被稱為黑箱測試,因為看不到裡面,相對的也有白箱測試XD
Functional Testing 是黑箱測試的一種具體應用形式,但黑箱測試不一定是Functional Testing,這邊不要搞混囉XD
那麼,我們主要想測試什麼東西呢?
想測的目標
-
Mainline functions: Testing the main functions of an application
-
Basic Usability: It involves basic usability testing of the system. It checks whether a user can freely navigate through the screens without any difficulties.
-
Accessibility: Checks the accessibility of the system for the user
-
Error Conditions: Usage of testing techniques to check for error conditions. It checks whether suitable error messages are displayed.
我們知道了想測試的東西後,來了解測試的流程吧
測試Flow
- 了解功能需求
- 根據需求確認測試輸入或測試數據
- 使用選定的測試輸入值計算預期結果
- 執行測試案例
- 比較實際結果和計算出的預期結果
因為我們看不到程式碼,我們只能透過規格來知道預期的結果,例如規格如果說這function會將兩個input相加後返回,那麼我們輸入1 and 1,一定要返回2,不然就是不符合規格。
Functional Testing Types
那麼那些測試類型屬於functional testing呢?
- Unit testing
- Smoke testing
- User Acceptance
- Integration Testing
- Regression testing
- Localization
- Globalization
- Interoperability
只要扯到規格的全部都是functional testing,而效能、可靠性、可擴展性和其他非功能方面的則不是
例如壓力測試呀performance testing都不屬於functional testing。
總結
今天我們知道了functional testing以及non-functional testing的意義,因為它們能夠確保軟體系統在實際使用中按照設計來運行,並且從測試中幫助發現並修復功能性缺陷。
迷之聲: 只要我們有寫程式,記得要寫測試喔~
reference
https://www.guru99.com/functional-testing.html